/*
 * Copyright © 2022-now 尛飛俠（Denvie） All rights reserved.
 */

package cn.denvie.springcloud.seata.order.service;

import cn.denvie.springcloud.seata.common.model.entity.Order;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * Order服务接口。
 *
 * @author Denvie
 * @date 2022/4/08
 * @since 1.0.0
 */
public interface OrderService extends IService<Order> {
    /**
     * 创建预订单，扣减库存。
     *
     * @param userId        用户ID
     * @param commodityCode 商品编号
     * @param count         订单数量
     * @param money         订单总金额
     * @return Order
     */
    Order booking(String userId, String commodityCode, int count, int money);

    /**
     * 创建采购订单，扣减库存，扣减余额。
     *
     * @param userId        用户ID
     * @param commodityCode 商品编号
     * @param count         订单数量
     * @param money         订单总金额
     * @return Order
     */
    Order purchase(String userId, String commodityCode, int count, int money);

    /**
     * 订单支付。
     *
     * @param orderId 订单ID
     * @param userId  用户ID
     * @param money   订单总金额
     */
    boolean pay(Long orderId, String userId, int money);
}
